home *** CD-ROM | disk | FTP | other *** search
- #ifndef _CTYPE_H
- #define _CTYPE_H
-
- #define _U 0x01 /* upper */
- #define _L 0x02 /* lower */
- #define _D 0x04 /* digit */
- #define _C 0x08 /* cntrl */
- #define _P 0x10 /* punct */
- #define _S 0x20 /* white space (space/lf/tab) */
- #define _X 0x40 /* hex digit */
- #define _SP 0x80 /* hard space (0x20) */
-
- extern unsigned char _ctype[];
- extern char _ctmp;
-
- #define isalnum(c) ((_ctype+1)[c]&(_U|_L|_D))
- #define isalpha(c) ((_ctype+1)[c]&(_U|_L))
- #define iscntrl(c) ((_ctype+1)[c]&(_C))
- #define isdigit(c) ((_ctype+1)[c]&(_D))
- #define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_D))
- #define islower(c) ((_ctype+1)[c]&(_L))
- #define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_D|_SP))
- #define ispunct(c) ((_ctype+1)[c]&(_P))
- #define isspace(c) ((_ctype+1)[c]&(_S))
- #define isupper(c) ((_ctype+1)[c]&(_U))
- #define isxdigit(c) ((_ctype+1)[c]&(_D|_X))
-
- #define isascii(c) (((unsigned) c)<=0x7f)
- #define toascii(c) (((unsigned) c)&0x7f)
-
- #define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp-('A'-'a'):_ctmp)
- #define toupper(c) (_ctmp=c,islower(_ctmp)?_ctmp-('a'-'A'):_ctmp)
-
- #endif
-